package com.ihr360.insurance.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ihr360.insurance.model.dto.benefits.embeddable.CompanyPaymentConfig;
import com.ihr360.insurance.model.dto.benefits.embeddable.PersonPaymentConfig;
import com.ihr360.insurance.model.dto.benefits.embeddable.RemedialConfig;

import java.io.Serializable;
import java.util.Date;

/**
 * @author Stone.Shi
 * @description
 * @date 2018-01-22 10:03:46.
 */
public class CompanyBenefitConfigVo implements Serializable {
    private static final long serialVersionUID = 576087460212032782L;
    private Long id;
    private BenefitTypeVo type;
    private RemedialConfig remedialConfig;

    private CompanyPaymentConfig companyConfig;

    private PersonPaymentConfig personConfig;

    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date effectiveOn;

    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date invalidOn;

    private Boolean enabled;

    public CompanyBenefitConfigVo(Long id, BenefitTypeVo type, RemedialConfig remedialConfig,
                                  CompanyPaymentConfig companyConfig, PersonPaymentConfig personConfig,
                                  Date effectiveOn, Date invalidOn, Boolean enabled) {
        this.id = id;
        this.type = type;
        this.remedialConfig = remedialConfig;
        this.companyConfig = companyConfig;
        this.personConfig = personConfig;
        this.effectiveOn = effectiveOn;
        this.invalidOn = invalidOn;
        this.enabled = enabled;
    }

    public Long getId() {
        return id;
    }

    public BenefitTypeVo getType() {
        return type;
    }

    public RemedialConfig getRemedialConfig() {
        return remedialConfig;
    }

    public CompanyPaymentConfig getCompanyConfig() {
        return companyConfig;
    }

    public PersonPaymentConfig getPersonConfig() {
        return personConfig;
    }

    public Date getEffectiveOn() {
        return effectiveOn;
    }

    public Date getInvalidOn() {
        return invalidOn;
    }

    public Boolean getEnabled() {
        return enabled;
    }
}
